// 引入配置路径的包
const path = require('path')

// 引入html插件,自动生成html文件，并且引入相关资源,用了导出的地方就多了个HTML文件
const HtmlWebpackPlugin = require('html-webpack-plugin')

// webpack所有的配置信息都写里面
module.exports = {
// 指定入口文件
entry:'./src/index.ts',
// 打包完后出口文件
output:{
    path:path.resolve(__dirname,'dist'),
    // 打包后文件名
    filename:'bundle.js'
},
// 指定webpack打包时要使用的模块
module:{
    // 指定加载的规则
    rules:[
        {
            // test指定规则生效的文件,下面用正则匹配以.ts结尾的文件
        test:/\.ts$/,
        // 用什么loader来处理这个文件
        use:'ts-loader',
        // 指定要排除的文件，下面是路径是node模块里面的都不编译
        exclude:/node-modules/
    }
    ]
},
// 配置插件，直接new HtmlWebpackPlugin()是默认的，但你还能加一些配置,里面加个对象配置参数
// 但是这样一个默认的模板有时候不能满足我们的要求，因为html里面可能有非常多的东西，所以我们可以提供一个模板，自己写的
plugins: [
    // 插件的配置
    new HtmlWebpackPlugin({
        template: './src/index.html'
    })
],

}